#coding=utf-8
'''

1 定义一个函数func(filename) filename:文件的路径，函数功能：打开文件，并且返回文件内容，最后关闭，用异常来处理可能发生的错误。
'''
try:
    c = open('1.txt','r')
except IOError:
    print "输出异常"
else:
    try:
        content = c.read('10')
    except TypeError:
        print "读取的类型错误"

finally:
     content = c.read()
     c.close()


'''
2 定义一个函数func(urllist)   urllist:为URL的列表，例如：['http://xx.com','http://www.xx.com','http://www.xxx.com'...] 

函数功能：要求依次打开url，打印url对应的内容，如果有的url打不开，则把url记录到日志文件里，并且跳过继续访问下个url。

'''
import urllib




import logging
def func2(urllist):

        for i in urllist:
            try:
                 if urllib.urlopen(i).code == 200:
                    c = urllib.urlopen(i).read()
                    return c
            except IOError:
                logging.basicConfig(filename='D:/demo/example.log', filemode='w', level=logging.DEBUG)
                logging.debug( u'输入输出错误:IOError')
                logging.info('So should this')
                logging.warning('And this, too')



print func2(['https://baidu5555.com','https://www.baidu.com','https://news.baidu.com'])


'''
3 定义一个函数func(domainlist)   domainlist:为域名列表，例如：['xx.com','www.xx.com','www.xxx.com'...]
函数功能：要求依次ping 域名，如果ping 域名返回结果为：request time out，则把域名记录到日志文件里，并且跳过继续ping下个域名。（提示用os模块的相关方法）


'''
import os
def func(domainlist):
    for i in domainlist:
            if os.system('ping '+i) == 1 :
                logging.basicConfig(filename='D:/demo/error.log', filemode='w', level=logging.DEBUG)
                logging.debug('request time out ' + i)
                logging.info('So should this')
                logging.warning('And this, too')
            else:
                return True

func(['hahhaha.com', 'ddhdhhdh.com', 'news.sjsjsjm.com'])